import {
	version
} from "@/api/request/env.js";
import {
	getParams,
	clear
} from "@/utils/storageSync.js";

module.exports = {
	/**
	 * 二次封装uni.request
	 * params :请求对象
	 * url:请求的接口地址
	 * method:请求方式 GET,POST....
	 *  data:要传递的参数
	 * header:请求头
	 * showLoading:加载 true/false
	 */
	request: (params) => {
		let {
			url,
			method,
			data,
			header,
			showLoading
		} = params;
		// console.log('封装的ajax请求', url, method, data, header);
		let baseUrl = version().url; //公共ip
		let _url = `${baseUrl}${url}`;

		let headerObj = {
			'Authorization': getParams('token'), //token
			'content-type': !header ? 'application/json' : header['content-Type'],
		}
		return new Promise((resolve, reject) => {
			//请求加载
			if (showLoading) {
				uni.showLoading({
					mask: true,
				})
			}
			uni.request({
				url: _url,
				method: method,
				timeout: 60000,
				data: data || '',
				header: headerObj,
				// header: {
				// 	'content-type': type ? 'application/json' : 'application/x-www-form-urlencoded',
				// 	'token': getParams('token'),//token校验
				// },
				success: (res) => {

					showLoading && uni.hideLoading();
					if (res.statusCode == 200) {
						//登录信息已失效，请重新登录

						if (res.data.errCode == '1202001001') {
							uni.showToast({
								title: res.data.errMsg,
								icon: 'none'
							})
							clear()
							setTimeout(() => {
								uni.reLaunch({
									url: '/pages/login/login',
								})
							}, 1000)
						} else {
							//请求成功
							resolve(res);
						}

					} else if (res.statusCode == 401) {
						resolve(res);
						// uni.navigateTo({
						//     url: '/pages/login/login?token=0',//拼接参数--表明是401--过去的
						// })
					} else if (res.statusCode == 500) {
						uni.showToast({
							title: '操作失败',
							icon: 'none',
							duration: 2000
						})
					} else if (res.statusCode == 404) {
						uni.showToast({
							title: '参数效验失败',
							icon: 'none'
						})
					} else if (res.statusCode == 403) {
						uni.showToast({
							title: '没有相关权限',
							icon: 'none'
						})
					} else if (res.statusCode == 402) {
						uni.showToast({
							title: '账户已禁用',
							icon: 'none'
						})
					} else {
						uni.showToast({
							title: '请求有误',
							icon: 'none'
						})
					}
				},
				fail(err) {
					uni.showToast({
						title: '"数据请求失败，请稍后再试~',
						icon: 'none'
					})
					reject(err);
					// uni.navigateTo({
					//     url: '/pages/login/login',
					// });
					// uni.showModal({
					//     title: '提示',
					//     content: '网络错误',
					//     success(err) {
					//         if (err.confirm) {
					//             console.log('用户点击确定');
					//         } else if (err.cancel) {
					//             console.log('用户点击取消');
					//         }
					//     }
					// })
				},
				complete() {
					uni.hideLoading();
				}
			});
		});
	},
}
